//
// Created by heqian on 17-8-7.
//

#ifndef AUTOMAHJONG_LOG_H
#define AUTOMAHJONG_LOG_H

#include "Prt.h"

namespace utils {

    class Log {
    public:
        template<typename T, typename...Args>
        static void info(const char *s, T value, Args... args);

        template<typename T, typename...Args>
        static void debug(const char *s, T value, Args... args);

        static Prt<Log> &get();

        static void setInterface(const Prt<Log> &mInterface);

    protected:
        template<typename T, typename...Args>
        void __info(const char *s, T value, Args... args);

        template<typename T, typename...Args>
        void __debug(const char *s, T value, Args... args);

    private:
        static Prt<Log> mInterface;
    };

}
#endif //AUTOMAHJONG_LOG_H
